package isg3;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;

import isg3.*;
public class GestionDeFirmas {
	
	private BufferedReader bf;
	
	public void firmarEvento(Evento even,Persona per){
		
		if( even.isManifiesto()){
			Map leven= even.getListaFirma();
			leven.put(per.getNIF(),per.getNombre()+" "+per.getApellidos());
			
						
		}
				
	}
	
	public void concatenarListaFirmas(Evento even ) throws IOException{
		// como las firmas son objetos de persona , se concatenan añadiendolas 
		/* Mejora, al concatenar dos listas, comprueba que no se repitan los dni 
		 * de dos personas  
		 * 
		 * Coge un fichero.txt facilitado por una organización con una lista de firmas
		 * que haya recogido para concatenarlas con las que la web tiene, sin que se repita ninguna
		 * dicho documento, debe ser txt y tiene que seguir un formato concreto*/
		if( even.isManifiesto()){
			Map leven= even.getListaFirma();
			List listaPersonas = new LinkedList();
			listaPersonas= (List) obtenerListaExterna(listaPersonas);
			Iterator itPer = listaPersonas.iterator();
			while (itPer.hasNext()){
				Persona p = (Persona)itPer.next();
				firmarEvento(even,p);
					
				
			}
		}
	}
	
	public Object obtenerListaExterna(List lper) throws IOException{
	abreFichero();
	String bufer = bf.readLine();
	while(bufer!=null){
		String NIF=null;
		String nombre=null;
		String apellidos=null;
		NIF = bufer.substring(0, bufer.indexOf(" "));
		bufer = bufer.substring(bufer.indexOf(" "));
		nombre = bufer.substring(0, bufer.indexOf(" "));
		apellidos = bufer.substring(bufer.indexOf(" "));
		Persona p = new Persona (NIF,false,nombre, apellidos, null , null, null, null);
		lper.add(p);
		bufer= bf.readLine();
	}
	return lper;
	}
	
	public void abreFichero()  throws IOException{
		FileReader fr = new FileReader("../adiosalacrisis/src/ficheros/ListaFirmas");//directorio provisional
		bf = new BufferedReader(fr);

		
		
	}
	
}
